The invention relates generally to data storage and transmission. More particularly, the invention relates to the encryption of data that includes codewords used for forward error correction.
Forward error correction is commonly performed in data transmission channels and data storage devices in order to maintain the integrity of user data. Redundancy data is added to the user data prior to transmission or storage. In data storage devices such as hard disk drives, compact disk (CD) players and Digital Video Disk (DVD) players, errors can occur due to defects in the storage medium and noise in the read channels. If an error is detected in the transmitted or stored data, the redundancy data allows the error to be corrected.
There are various methods of performing forward error correction. For instance, Reed-Solomon Product Code ("RS-PC") is used in CD and DVD players.
The CD and DVD players include error correction circuits for performing the forward error correction. The error correction circuits are computationally intensive and are typically implemented in a hardwired or inflexible manner. Additionally, the error correction circuits tend to be expensive in processing circuitry and high-speed memory.
Recent increases in processing power of personal computers will make it practical to perform full or partial forward error correction in the computer's host processor instead of the data storage device. Allowing the host processor to perform error correction would allow for more flexible error correction methods to be utilized. For example, the host processor could execute a default routine that is fast and that could correct a large majority of errors. Errors that could not be corrected by the default routine would be corrected by a more complex routine, such as a "heroic data recovery" routine. Heroic recovery is especially valuable in connection with long term storage of data. Hardcopies of valuable data might be destroyed following storage on a storage medium (e.g., a platter of a hard drive or a CD). In the months and years following the storage, long-term degradation of the storage medium might occur. A typical error correction circuit in a storage device might not be able to recover all of the data from the degraded storage medium. If such data cannot be recovered, it might be lost forever. The host processor, however, is more likely to recover the data using heroic data recovery routines.
The task of performing error correction could be shifted entirely or partially to the host processor. Consequently, the cost of the storage device could be reduced. The decoder circuit could be reduced or eliminated and expensive static random access memory (RAM) could be reduced in size.
In the alternative, the task of performing error correction could be divided between the host processor and the error correction circuit in the storage device. The task of correcting errors would fall initially on the error correction circuit, which would utilize a simple error correction algorithm that identifies and corrects the majority of errors. In the event the error correction circuit could not correct a data block, the task would be shifted to the host processor, which would use a more complex error correction routine. Such flexibility would allow for a fast, inexpensive error correction circuit to be used by the storage device. Consequently, the cost of the storage device would be lowered and the reliability of performing error correction would be improved.
However, there can be problems associated with performing the error correction in the host processor, especially after data encryption has been performed on data including error code correction ("ECC") codewords. If the ECC codewords are encrypted, the integrity of the codewords is typically destroyed. Consequently, errors in the data cannot be corrected by the host processor.
Yet there is an increasing pressure in the industry to encrypt the data before the data is sent from the storage device to the host processor. This is especially true for DVD-ROM drives on computers. Data is sent from a DVD-ROM drive to a DVD decoder card over a computer bus, which is not secure. There is a genuine concern that unencrypted data placed on the bus could be intercepted, and unauthorized copies of high quality movies, music, and proprietary data could be made. If unencrypted data were sent to the host processor for error correction, it would be vulnerable to theft and unauthorized copying. Therefore, the data is not error code corrected in the host processor. Instead, error code correction is performed on the data in the DVD-ROM drive. The error code corrected data is then encrypted before being sent to the DVD decoder card via the unsecured computer bus.
Thus far, the host processor has been precluded from performing error correction due to the need for secure transmissions over the computer bus. Consequently, the cost of the DVD-ROM drive has not been reduced by eliminating the expensive decoder and reducing expensive RAM for performing error correction. Additionally, the flexibility of performing different error correction routines has not been available.